<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        ///即WeakSet 中对对象的引用不会被考虑进垃圾回收机制，即只要没有其他的对象引用该对象，(意思是还可以再恢复)
        //则该对象就会被回收，而不管它在不在 WeakSet,​ 
        //（由于这个特性，所以 WeakSet 适合临时存放一组对象和跟对象绑定的信息） ​
    // let set =new Set([12,21,51,12]);
    // set.forEach(item => console.log(item));
    let set =new WeakSet();//只能传入对象内型的
    //weakset ，遍历也不行
    
    //WeakSet 没有size属性，没法遍历（故没有 forEach 方法)

    //WeakSet 有三个方法：add, delete, has
//WeakSet.prototype.add(value) 向WeakSet 实例添加一个成员
//WeakSet.prototype.delete(value) 清除 WeakSet 实例的指定成员
//WeakSet.prototype.has(value) 判断某个值是否在WeakSet 实例中，返回布尔值

let grade={//对象
    name:"唐玮",
    age:20
}
set.add(grade);
// console.log(set.has(grade));//true
// set.delete(grade);
// console.log(set.has(grade));

//让对象为空时
grade=""
console.log(set);//[[Entries]]
                 // 无属性
                 // [[Prototype]]: WeakSet
//没有为undefined,所以weakset为弱引用类型的，
//垃圾回收机制时，不会被考虑进去
    </script>
</body>
</html>